﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Infra.Entity;


namespace Infra.Common.DAO
{
    public class EstadoPessoa
    {


        public static void Salvar(PERESTADOPESSOA EStadoP)
        {
            using (DBInfraEntityDataContext dc = new DBInfraEntityDataContext())
            {
                if (EStadoP.CODESTADOPESSOA != 0)
                {
                    //Alterar o utilizador
                    var SPessoa = dc.PERESTADOPESSOAs.Single(SP => SP.CODESTADOPESSOA == EStadoP.CODESTADOPESSOA);
                    SPessoa.STRESTADOPESSOA= EStadoP.STRESTADOPESSOA;
                    dc.SubmitChanges();
                }
                else
                {
                    //Gravar utilizador
                    dc.PERESTADOPESSOAs.InsertOnSubmit(EStadoP);
                    dc.SubmitChanges();
                }
            }
        }


        public static void Excluir(int idEStadoPessoa)
        {
            using (DBInfraEntityDataContext dc = new DBInfraEntityDataContext())
            {
                var SPessoa = dc.PERESTADOPESSOAs.Single(SP => SP.CODESTADOPESSOA == idEStadoPessoa);
                dc.PERESTADOPESSOAs.DeleteOnSubmit(SPessoa);
                dc.SubmitChanges();
            }
        }




        public static List<PERESTADOPESSOA> Pesquisar(int Codigo, string EstadoPessoa)
        {
            List<PERESTADOPESSOA> ListaEstadoPessoa = null;

            using (DBInfraEntityDataContext dc = new DBInfraEntityDataContext())
            {
                var SPessoa = from SP in dc.PERESTADOPESSOAs
                           where ((Codigo.Equals(0) || Codigo.Equals(SP.CODESTADOPESSOA)) &&
                           (EstadoPessoa.Equals(string.Empty) || EstadoPessoa.Equals(SP.STRESTADOPESSOA.Contains(EstadoPessoa))))
                           select SP;
                ListaEstadoPessoa = SPessoa.ToList();
            }

            return ListaEstadoPessoa;
        }



        public static List<PERESTADOPESSOA> Pesquisar()
        {
            List<PERESTADOPESSOA> ListaEstadoPessoa = null;

            using (DBInfraEntityDataContext dc = new DBInfraEntityDataContext())
            {
                var SPessoa = from SP in dc.PERESTADOPESSOAs
                              select SP;
                ListaEstadoPessoa = SPessoa.ToList();
            }

            return ListaEstadoPessoa;
        }


    }



}
